1. Field of the Invention
This invention relates generally to monitoring logic for PC/AT notebook devices and methods therefor and, more specifically, to monitoring logic for PC/AT notebook devices and methods therefor which are distributed into individual I/O blocks thus reducing the amount of logic required for monitoring these devices.
2. Description of the Prior Art
Normally in a PC/AT notebook, devices are monitored by special logic that monitors the I/O addresses of the devices. The logic is programmed to match each I/O device's address range and to detect access to the I/O devices, which are generally peripherals. A strong trend exists in the industry to incorporate the peripherals for the portable notebooks into the system chip set. In fact, in most state of the art PC/AT portable systems, most of the common peripherals are located in the chip set. These devices generally include the printer, universal asynchronous receiver transmitters (UART(s)), floppy disk drives, real time clock (RTC), and possibly even the keyboard controller. However, incorporating these devices into the system chip set presents several problems.
In order to manage the I/O devices, the device monitoring logic in the system controller must be aware of the address of each I/O device it is monitoring. The device monitoring logic must also be aware of the state of each I/O device. This requires that the I/O decode logic in each I/O device must be duplicated in the device monitoring logic. Having the I/O decode logic at two locations presents several problems for the system. First, the device monitoring logic must have sufficient resources for a maximum configuration even if this requires much more logic than a typical configuration. Second, the I/O decode logic in the device monitoring logic of the system controller must match the configuration of each individual I/O device. Third, if the I/O device address is changed, the device monitoring logic must track the change since the system controller must be aware of the state of each I/O device.
Current conventional device monitoring logic also has another problem. Power management of individual I/O devices in a PC/AT portable system generally rely on programmable registers that can be configured to detect access to an I/O device's address range. The complexity of a programmable block of logic is substantially greater then the logic in a fixed I/O decode block. Many devices in a PC/AT portable system have configurable I/O addresses, generally a selection of 2 or 4 addresses. By distributing the I/O monitoring to the I/O block, this simple variable address selection is automatically extended to the I/O monitoring logic. Thus, the complex programmable logic would not be required.
Therefore, a need existed for managing PC/AT notebooks that would combine the individual circuits for I/O device select, I/O break and I/O activity detection into a single circuit. This in turn would simplify the logic required, simplify the programming of the logic, and allow for power management solutions that are targeted to a specific I/O devices's requirements. By distributing the monitoring logic to the individual I/O blocks, several benefits will result. Among these benefits are: a reduced gate count since the decode logic does not have to exist at two locations in the system, i.e. at the I/O device and at the device monitoring logic; self configuring monitor circuits since the same logic that is used to assign I/O addresses to the I/O devices would be used as an activity monitor circuit thereby saving the programming steps normally required to configure and reconfigure the monitor circuitry when an I/O device's address is changed; improved functionality since the I/O block being monitored is now power management aware thereby allowing the I/O block to modify its operation to conserve power; and decreased system power management overhead since the simple architecture requires fewer programming steps.